1. Technical Field
The present invention generally relates to data processing systems and in particular to the efficient allocation of data processing system resources to partitions.
2. Description of the Related Art
Virtualization and Micro-Partitioning are technologies that increase system performance and enhance efficiency in data processing systems. Micro-Partitioning is the technology which allows for multiple partitions to share one physical processor. A partition may be defined as an allocation of data processing resources within a time limited dispatch window. After a partition is activated, processing capacity is usually referred to as capacity entitlement or entitled capacity. The shared processor partitions are dispatched (into a dispatch window) and time-sliced on the physical processors that are under control of the Power Hypervisor (Phyp), a component of firmware. The Hypervisor schedules shared processor partitions from a set of physical processors that is called the shared processor pool.
In virtualization, physical processors are abstracted into virtual processors that are then assigned to partitions. The underlying physical processors are shared by these partitions, which may be “capped or uncapped” partitions. In a virtualized environment, a partition is guaranteed full use of its entitlement within the dispatch window. For example, in International Business Machines' (IBM's) POWER5™ processor, the AIX dispatch window has a ten (10) millisecond (ms) duration. Capped processing does not allow a partition to utilize unused processing capacity in other partitions. With uncapped processing, after a partition reaches the allotted processing capability, the partition is allowed to utilize unused capacity in other partitions. Any unused portion of the dispatch window is redistributed to the “uncapped partitions” in the system. Thus, the uncapped partition may provide better overall utilization of the total system and the system's partitions. A lottery mechanism based on the uncapped partitions' weight is employed to determine which uncapped partition will be dispatched.
A problem may occur if a partition has consumed all of its time in the current dispatch window and requires additional time to complete a transaction before the end of the current dispatch window. However, since this partition is generally not the next partition to be dispatched, the uncompleted transaction must wait until the next dispatched window in order to be completed. The footprint of the next scheduled partition must be established when this next partition is dispatched, and there is no guarantee that the next scheduled partition does not disturb the footprint of the original partition. Consequently, the ability of the next partition to quickly establish a footprint and carry out meaningful work in a specific allocation of time, without disturbing the footprint of the original partition, remains uncertain.
The footprint of a partition refers to the partition's allocation of resources, which resources include memory, processor, and Input/Output (I/O). Generally, footprint costs are associated with repopulating processor state (registers) and memory (caches, main memory); However, I/O is a factor as well in the determination of footprint costs. Determining the cost of loading a partition's footprint is important because unlike applications running in a dedicated environment, the footprint of a partition must be established each time the partition is dispatched.
Thus, as addressed by the present invention, POWER hypervisor (Phyp) dispatching may be made more efficient if there was information about the time taken to establish a workload footprint each time the partition is dispatched. Collecting statistics about start up costs, for example, may facilitate the Phyp dispatch efficiency. Additionally, the efficient and appropriate utilization of these collected statistics makes the application of partition level tuning possible.
The present invention further recognizes that while it is possible to use software methods to collect partition statistics, the software methods have several disadvantages. For example, in order to achieve the required granularity, e.g., accessing the sub-millisecond level of statistical sampling, the software methods introduce too many interrupts, thereby smudging the behavior of the footprint load.